import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;

public class Demo_1108 {
    public static void main(String[] args) throws InterruptedException{
        //定义一把锁
        ReentrantLock lock = new ReentrantLock();

        //定义很多个休眠与唤醒条件
        //条件1
        Condition male = lock.newCondition();
        //条件2
        Condition female = lock.newCondition();

        //根据不同的条件进行阻塞等待
        male.await();
        //根据不同的条件进行唤醒
        male.signal(); //唤醒相应队列中的一个线程
        male.signalAll(); //唤醒相应队列中的所有线程

        //根据不同的条件进行阻塞等待
        female.signal();
        female.signalAll();
    }
}
